From f1d108148e9d56b8e968604709ba39a8fafffc85 Mon Sep 17 00:00:00 2001 From: Alex Williamson Date: Fri, 24 Aug 2007 15:09:14 -0600 Subject: [PATCH] [IA64] Clean up NVRAM failure case copy_from_GFW_to_nvram() in libxc forgot munmap() if NVRAM data invalid. Also it forgot free() and close() too. Signed-off-by: Masaki Kanno --- tools/libxc/ia64/xc_ia64_hvm_build.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/libxc/ia64/xc_ia64_hvm_build.c b/tools/libxc/ia64/xc_ia64_hvm_build.c index ec5a87246a..2a3a345c3d 100644 --- a/tools/libxc/ia64/xc_ia64_hvm_build.c +++ b/tools/libxc/ia64/xc_ia64_hvm_build.c @@ -684,7 +684,12 @@ copy_from_GFW_to_nvram(int xc_handle, uint32_t dom, int nvram_fd) /* Check is NVRAM data vaild */ if ( !is_valid_address(tmp_ptr) ) + { + free(pfn_list); + munmap(tmp_ptr, PAGE_SIZE); + close(nvram_fd); return -1; + } addr_from_GFW_4k_align = ((struct nvram_save_addr *)tmp_ptr)->addr; munmap(tmp_ptr, PAGE_SIZE); -- 2.30.2